#include <stdio.h>

//Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...，
//在Fibonacci数列中的数我们称为Fibonacci数。
//给你一个N，你想让其变为一个Fibonacci数
//每一步你可 以把当前数字X变为X-1或者X+1
//现在给你一个数N求最少需要多少步可以变为Fibonacci数。

#define MIN(x, y) (((x) < (y)) ? (x) : (y))

int closestFibonacci(int mid) {
    int left = 0;
    int right = 1;
    while (right < mid) {
        int Fib = left + right;
        left = right;
        right = Fib;
    }
    return MIN(mid - left, right - mid);
}

int main() {
    int input = 0;
    scanf("%d", &input);
    int ret = closestFibonacci(input);
    printf("%d", ret);
    return 0;
}